/**
*	@class VertexFormat
*
*	@brief
*
*	@author William McVicar
*/

#pragma once

#ifndef __DX10VERTEXFORMAT_H_INCLUDED__
#define __DX10VERTEXFORMAT_H_INCLUDED__
#ifdef DX10

//  Library Includes

//  Local Includes
#include <d3d10.h>
#include "VertexFormatBase.h"

//  Macros

//  Forward Declarations

//  Types

//  Constants

//  Prototypes

namespace Protein
{

class VertexFormat
{
	//Member Functions
public:

	VertexFormat( const VertexFormatBase* _pBase, LPD3D10BLOB _pVSBuf );
	~VertexFormat();

	void Enable();
	void Disable();

protected: 

private: 

	//Member Variables
public:

protected: 

private: 

	D3D10_INPUT_ELEMENT_DESC	m_elements[ FL_MAX_ATTRIBUTES ];
	ID3D10InputLayout*			m_pVertexLayout;
};

#include "Dx10VertexFormat.inl"

}

#endif //DX10
#endif //__DX10VERTEXFORMAT_H_INCLUDED__
